Configuring SBC IP-to-IP Routing Rules
The IP-to-IP Routing table lets you configure up to
Configuration of IP-to-IP routing rules includes two areas:
■ | Match: Defines the characteristics of the incoming SIP dialog message (e.g., IP Group from which the message is received). |
■ | Action: Defines the action that is done if the incoming call matches the characteristics of the rule (i.e., routes the call to the specified destination). |
The device searches the table from top to bottom for the first rule that matches the characteristics of the incoming call. If it finds a matching rule, it sends the call to the destination configured for that rule. If it doesn't find a matching rule, it rejects the call.
Configure stricter rules higher up in the table than less strict rules to ensure the desired rule is used to route the call. Strict refers to the number of matching characteristics configured for the rule. For example, a rule configured with source host name and source IP Group as matching characteristics is stricter than a rule configured with only source host name. If the rule configured with only source host name appears higher up in the table, the device ("erroneously") uses the rule to route calls matching this source host name (even if they also match the rule appearing lower down in the table configured with the source IP Group as well).
The IP-to-IP Routing table lets you route incoming SIP dialog messages (e.g., INVITE) to any of the following IP destinations:
■ | According to registered user Contact listed in the device's registration database (only for User-type IP Groups). |
■ | IP Group - the destination is the address configured for the Proxy Set associated with the IP Group. |
■ | IP Group Set - the destination can be based on multiple IP Groups for load balancing, where each call may be sent to a different IP Group within the IP Group Set depending on the IP Group Set's definition. |
■ | Routing tag - the device sends the call to an IP Group (or IP Group Set) based on a destination tag (determined by Dial Plans or Call Setup Rules). |
■ | IP address in dotted-decimal notation or FQDN. Routing to a host name can be resolved using NAPTR/SRV/A-Record. |
■ | Request-URI of incoming SIP dialog-initiating requests. |
■ | Any registered user in the registration database. If the Request-URI of the incoming INVITE exists in the database, the call is sent to the corresponding contact address specified in the database. |
■ | According to result of an ENUM query. |
■ | Hunt Group - used for call survivability of call centers (see Configuring Call Survivability for Call Centers). |
■ | According to result of LDAP query (for more information on LDAP-based routing, see Routing Based on LDAP Active Directory Queries). |
■ | Third-party routing server or ARM, which determines the destination (next hop) of the call (IP Group). The IP Group represents the next device in the routing path to the final destination. For more information, see Centralized Third-Party Routing Server. |
■ | Back to the sender of the incoming message, where the reply can be a SIP response code or a 3xx redirection response (with an optional Contact field to where the sender must re-send the message). |
The following figure summarizes the destination types:
To configure and apply an IP-to-IP Routing rule, the rule must be associated with a Routing Policy. The Routing Policy associates the routing rule with an SRD(s). Therefore, the Routing Policy lets you configure routing rules for calls belonging to specific SRD(s). However, as multiple Routing Policies are relevant only for multi-tenant deployments (if needed), for most deployments, only a single Routing Policy is required. As the device provides a default Routing Policy ("Default_SBCRoutingPolicy"), when only one Routing Policy is required, the device automatically assigns the default Routing Policy to the routing rule. If you are implementing LDAP-based routing (with or without Call Setup Rules) and/or Least Cost Routing (LCR), you need to configure these settings for the Routing Policy (regardless of the number of Routing Policies employed). For more information on Routing Policies, see Configuring SBC Routing Policy Rules.
The IP-to-IP Routing table also provides the following features:
■ | Alternative Routing: In addition to the alternative routing/load balancing provided by the Proxy Set associated with the destination IP Group, the table allows the configuration of alternative routes where if a route fails, the next adjacent (below) rule in the table that is configured to Alt Route Ignore/Consider Inputs are used. The alternative routing rules can be set to enforce the input matching criteria or to ignore any matching criteria. Alternative routing occurs upon one of the following conditions: |
● | A request sent by the device is responded with one of the following: |
◆ | SIP response code (e.g., 4xx, 5xx, and 6xx) that is also configured for an Alternative Reasons Set (see Configuring SIP Response Codes for Alternative Routing Reasons) assigned to the IP Group ('SBC Alternative Routing Reasons Set' parameter). |
◆ | SIP 408 Timeout or no response (after timeout). |
● | The DNS resolution includes IP addresses that the device has yet to try (for the current call). |
Messages are re-routed with the same SIP Call-ID and CSeq header fields (increased by 1).
If the Proxy Set (see Configuring Proxy Sets) associated with the destination of the call is configured with multiple IP addresses, the device first attempts to route the call to one of these IP addresses, starting with the first listed address. Only when the call cannot be routed to any of the Proxy Set’s IP addresses does the device search the IP-to-IP Routing table for an alternative routing rule for the call.
■ | Load Balancing: You can implement load balancing of calls, belonging to the same source, between a set of destination IP Groups known as an IP Group Set. The IP Group Set can include up to five IP Groups (Server-type and/or Gateway-type only) and the chosen IP Group depends on the configured load-balancing policy (e.g., Round Robin). To configure the feature, you need to first configure an IP Group Set (see Configuring IP Group Sets), and then assign it to a routing rule with 'Destination Type' configured to IP Group Set. |
■ | Re-routing SIP Requests: This table enables you to configure "re-routing" rules of requests (e.g., INVITEs) that the device sends upon receipt of SIP 3xx responses or REFER messages. These rules are configured for destinations that do not support receipt of 3xx or REFER and where the device handles the requests locally (instead of forwarding the 3xx or REFER to the destination). |
■ | Least Cost Routing (LCR): If the LCR feature is enabled, the device searches the routing table for matching routing rules and then selects the one with the lowest call cost. The call cost of the routing rule is done by assigning it a Cost Group. To configure Cost Groups, see Least Cost Routing. If two routing rules have identical costs, then the rule appearing higher up in the table (i.e., first-matched rule) is used. If a selected route is unavailable, the device uses the next least-cost routing rule. However, even if a matched rule is not assigned a Cost Group, the device can select it as the preferred route over other matched routing rules that are assigned Cost Groups, according to the default LCR settings configured for the assigned Routing Policy (see Configuring SBC Routing Policy Rules). |
■ | Call Forking: The IP-to-IP Routing table can be configured to route an incoming IP call to multiple destinations (call forking). The incoming call can be routed to multiple destinations of any type such as an IP Group or IP address. The device forks the call by sending simultaneous INVITE messages to all the specified destinations. It handles the multiple SIP dialogs until one of the calls is answered and then terminates the other SIP dialogs. |
Call forking is configured by creating a Forking group. A Forking group consists of a main routing rule ('Alternative Route Options' set to Route Row) whose 'Group Policy' is set to Forking, and one or more associated routing rules ('Alternative Route Options' set to Group Member Ignore Inputs or Group Member Consider Inputs). The group members must be configured in contiguous table rows to the main routing rule. If an incoming call matches the input characteristics of the main routing rule, the device routes the call to its destination and all those of the group members.
An alternative routing rule can also be configured for the Forking group. The alternative route is used if the call fails for the Forking group (i.e., main route and all its group members). The alternative routing rule must be configured in the table row immediately below the last member of the Forking group. The 'Alternative Route Options' of this alternative route must be set to Alt Route Ignore Inputs or Alt Route Consider Inputs. The alternative route can also be configured with its own forking group members, where if the device uses the alternative route, the call is also sent to its group members. In this case, instead of setting the alternative route's 'Group Policy' to None, you must set it to Forking. The group members of the alternative route must be configured in the rows immediately below it.
The LCR feature can also be employed with call forking. The device calculates a maximum call cost for each Forking group and routes the call to the Forking group with the lowest cost. Thus, even if the call can successfully be routed to the main routing rule, a different routing rule can be chosen (even an alternative route, if configured) based on LCR. If routing to one Forking group fails, the device tries to route the call to the Forking group with the next lowest cost (main or alternative route), and so on. The prerequisite for this functionality is that the incoming call must successfully match the input characteristics of the main routing rule.
■ | Tags Representing Source / Destination Numbers: If your deployment includes calls of many different called (source URI user part) and/or calling (destination URI user part) numbers that need to be routed to the same destination, you can employ user-defined tags to represent these numbers. Therefore, instead of configuring many routing rules, you can configure only one routing rule using the tag(s) as the source or destination number matching characteristics, and a destination for the calls. Tags can be obtained using Dial Plans (see Using Dial Plan Tags for Matching Routing Rules) or Call Setup Rules (Configuring Call Setup Rules). |
■ | Destination Tags for Determining Destination IP Group: Instead of configuring multiple routing rules, you can configure a single routing rule with a destination tag. The tag can be determined using Dial Plans or Call Setup Rules. The device uses the tag to search the IP Groups table for a destination IP Group that matches the tag ('Tags' parameter). For more information on tag-based routing, see Using Destination Tags for Choosing Routing Destinations. |
■ | Fax Rerouting: You can configure the device to reroute incoming calls that it identifies as fax calls to a new IP destination. For more information, see Configuring Rerouting of Calls to Fax Destinations. |
Call forking is not applicable to LDAP-based routing.
The following procedure describes how to configure IP-to-IP routing rules through the Web interface. You can also configure it through ini file [IP2IPRouting] or CLI (configure voip > sbc routing ip2ip-routing).
➢ | To configure an IP-to-IP routing rule: |
1. | Open the IP-to-IP Routing table (Setup menu > Signaling & Media tab > SBC folder > Routing > IP-to-IP Routing). |
2. | Click New; the following dialog box appears: |
3. | From the 'Routing Policy' drop-down list, select a Routing Policy (configured in Configuring SBC Routing Policies). |
4. | Configure an IP-to-IP routing rule according to the parameters described in the table below. |
5. | Click Apply. |
IP-to-IP Routing Table Parameter Descriptions
Parameter |
Description |
|||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
'Routing Policy' sbc-routing-policy-name [RoutingPolicyName] |
Assigns a Routing Policy to the rule. The Routing Policy associates the rule with an SRD(s). The Routing Policy also defines default LCR settings as well as the LDAP servers used if the routing rule is based on LDAP routing (and Call Setup Rules). If only one Routing Policy is configured in the Routing Policies table, the Routing Policy is automatically assigned. If multiple Routing Policies are configured, no value is assigned. To configure Routing Policies, see Configuring SBC Routing Policies. Note: The parameter is mandatory. |
|||||||||||||||||||||||||||||||||||||||||||||
General |
||||||||||||||||||||||||||||||||||||||||||||||
'Index' [Index] |
Defines an index number for the new table row. Note: Each row must be configured with a unique index. |
|||||||||||||||||||||||||||||||||||||||||||||
'Name' route-name [RouteName] |
Defines a descriptive name, which is used when associating the row in other tables. The valid value is a string of up to 40 characters. By default, no value is defined. Note: The parameter value can't be configured with the character string "any" (upper or lower case). |
|||||||||||||||||||||||||||||||||||||||||||||
'Alternative Route Options' alt-route-options [AltRouteOptions] |
Determines whether this routing rule is the main routing rule or an alternative routing rule (to the rule defined directly above it in the table).
Note:
|
|||||||||||||||||||||||||||||||||||||||||||||
Match |
||||||||||||||||||||||||||||||||||||||||||||||
'Source IP Group' src-ip-group-name [SrcIPGroupName] |
Defines the IP Group from where the IP call is received (i.e., the IP Group that sent the SIP dialog). Typically, the IP Group of an incoming SIP dialog is determined (or classified) using the Classification table (see Configuring Classification Rules). The default is Any (i.e., any IP Group). Note: The selectable IP Group for the parameter depends on the assigned Routing Policy (in the 'Routing Policy' parameter in this table). For more information, see Configuring SBC Routing Policy Rules. |
|||||||||||||||||||||||||||||||||||||||||||||
'Request Type' request-type [RequestType] |
Defines the SIP dialog request type (SIP Method) of the incoming SIP dialog.
Note:
|
|||||||||||||||||||||||||||||||||||||||||||||
'Source Username Pattern' src-user-name-pattern [SrcUsernamePrefix] |
Defines the user part of the incoming SIP dialog's source URI (usually the From URI). You can use special patterns (notations) to denote the user part. For example, if you want to match this rule to user parts whose last four digits (i.e., suffix) are 4 followed by any three digits (e.g., 4008), then configure this parameter to "(4xxx)". To denote calls without a user part in the URI, use the dollar ($) sign. For available patterns, see Dialing Plan Notation for Routing and Manipulation. The valid value is a string of up to 60 characters. The default is the asterisk (*) symbol (i.e., any user part). If this rule is not required, leave this field empty. Note: If you need to route calls of many different source URI user names to the same destination, you can use tags (see 'Source Tags' parameter below) instead of this parameter. |
|||||||||||||||||||||||||||||||||||||||||||||
'Source Host' src-host [SrcHost] |
Defines the host part of the incoming SIP dialog's source URI (usually the From URI). The default is the asterisk (*) symbol (i.e., any host name). If this rule is not required, leave this field empty. |
|||||||||||||||||||||||||||||||||||||||||||||
'Source Tags' src-tags [SrcTags] |
Defines a source tag(s) for matching this routing rule. The source tag can be obtained using a Dial Plan (assigned to the source IP Group or SRD) or Call Setup Rules (assigned to the source IP Group or SIP Interface). The valid value is:
By default, no value is defined. The following example configures the maximum number of tags (i.e., seven name=value tags and one value-only tag): Country=Ireland;Country2=Scotland;Country3=RSA;Country4=Canada;Country5=UK;Country6=France;Country7=Germany;USA. To configure Dial Plans, see Configuring Dial Plans. To configure tags using Call Setup Rules (i.e., using the SrcTags attribute), see Configuring Call Setup Rules. Note:
|
|||||||||||||||||||||||||||||||||||||||||||||
'Destination Username Pattern' dst-user-name-pattern [DestUsernamePrefix] |
Defines the incoming SIP dialog's destination URI (usually the Request URI) user part. You can use special patterns (notations) to denote the user part. For example, if you want to match this rule to user parts whose last four digits (i.e., suffix) are 4 followed by any three digits (e.g., 4008), then configure this parameter to "(4xxx)". To denote calls without a user part in the URI, use the dollar ($) sign. For available patterns, see Dialing Plan Notation for Routing and Manipulation. The valid value is a string of up to 60 characters. The default is the asterisk (*) symbol (i.e., any user part). If this rule is not required, leave this field empty. Note: If you need to route calls of many different destination URI user names to the same destination, you can use tags (see 'Source Tags' parameter below) instead of this parameter. |
|||||||||||||||||||||||||||||||||||||||||||||
'Destination Host' dst-host [DestHost] |
Defines the host part of the incoming SIP dialog’s destination URI (usually the Request-URI). The default is the asterisk (*) symbol (i.e., any destination host). If this rule is not required, leave this field empty. |
|||||||||||||||||||||||||||||||||||||||||||||
'Destination Tags' dest-tags [DestTags] |
Defines a destination tag(s) for matching this routing rule. The destination tag can be obtained using a Dial Plan (assigned to the source IP Group or SRD) or Call Setup Rules (assigned to the source IP Group or SIP Interface). The valid value is:
By default, no value is defined. The following example configures the maximum number of tags (i.e., seven name=value tags and one value-only tag): Country=Ireland;Country2=Scotland;Country3=RSA;Country4=Canada;Country5=UK;Country6=France;Country7=Germany;USA. To configure Dial Plans, see Configuring Dial Plans. To configure tags using Call Setup Rules (i.e., using the DstTags attribute), see Configuring Call Setup Rules. Note:
|
|||||||||||||||||||||||||||||||||||||||||||||
'Message Condition' message-condition-name [MessageConditionName] |
Assigns a SIP Message Condition rule to the IP-to-IP Routing rule. To configure Message Condition rules, see Configuring Message Condition Rules. |
|||||||||||||||||||||||||||||||||||||||||||||
'Call Trigger' trigger [Trigger] |
Defines the reason (i.e., trigger) for re-routing (i.e., alternative routing) the SIP request.
|
|||||||||||||||||||||||||||||||||||||||||||||
'ReRoute IP Group' re-route-ip-group-id [ReRouteIPGroupName] |
Defines the IP Group that initiated (sent) the SIP redirect response (e.g., 3xx) or REFER message. This parameter is typically used for rerouting requests (e.g., INVITEs) when interworking is required for SIP 3xx redirect responses or REFER messages. For more information, see Interworking SIP 3xx Redirect Responses and Interworking SIP REFER Messages, respectively. The parameter functions together with the 'Call Trigger' parameter (in the table). The default is Any (i.e., any IP Group). Note: The selectable IP Group for the parameter depends on the assigned Routing Policy (in the 'Routing Policy' parameter in this table). For more information, see Configuring SBC Routing Policy Rules. |
|||||||||||||||||||||||||||||||||||||||||||||
Action |
||||||||||||||||||||||||||||||||||||||||||||||
'Destination Type' dst-type [DestType] |
Defines the type of destination to where the device sends the outgoing SIP dialog.
Note that the second parameter "0" is ignored. An example of a configured Dial Plan (# 6) in the Dial Plan file is shown below: [ PLAN6 ] Once the Dial Plan is defined, you need to assign it (0 to 7) to the routing rule as the destination in the 'Destination Address' parameter, where "0" denotes [PLAN1], "1" denotes [PLAN2], and so on.
If the incoming SIP dialog is a REGISTER message, the device acts as a registrar and only responds to the sender of the request (200 OK) without sending the REGISTER message to a destination (i.e., termination of REGISTER messages).
Note: For tag-based routing, you also need to configure the 'Routing Tag Name' parameter (below).
Note:
|
|||||||||||||||||||||||||||||||||||||||||||||
'Destination IP Group' dst-ip-group-name [DestIPGroupName] |
Defines the IP Group to where you want to route the call. The actual destination of the SIP dialog message depends on the IP Group type (as defined in the 'Type' parameter):
By default, no value is defined. Note:
|
|||||||||||||||||||||||||||||||||||||||||||||
'Destination SIP Interface' dest-sip-interface-name [DestSIPInterfaceName] |
Defines the destination SIP Interface to where the call is sent. By default, no value is defined. To configure SIP Interfaces, see Configuring SIP Interfaces. Note:
|
|||||||||||||||||||||||||||||||||||||||||||||
'Destination Address' dst-address [DestAddress] |
Defines the destination address to where the call is sent. The valid value is an IP address in dotted-decimal notation or an FQDN (domain name, e.g., domain.com). If ENUM-based routing is used (i.e., the 'Destination Type' parameter is set to ENUM) the parameter configures the address of the ENUM service, for example, e164.arpa, e164.customer.net or NRENum.net. The device sends the ENUM query containing the destination phone number to an external DNS server, configured The valid value is a string of up to 50 characters (IP address or FQDN). By default, no value is defined. Note:
|
|||||||||||||||||||||||||||||||||||||||||||||
'Destination Port' dst-port [DestPort] |
Defines the destination port to where the call is sent. |
|||||||||||||||||||||||||||||||||||||||||||||
'Destination Transport Type' dst-transport-type [DestTransportType] |
Defines the transport layer type for sending the call.
|
|||||||||||||||||||||||||||||||||||||||||||||
'IP Group Set' ipgroupset-name [IPGroupSetName] |
Assigns an IP Group Set to the routing rule. The device routes the call to one of the IP Groups in the IP Group Set according to the load-balancing policy configured for the IP Group Set. For more information, see Configuring IP Group Sets. Note: The parameter is applicable only if you configure the 'Destination Type' parameter to IP Group Set (above). |
|||||||||||||||||||||||||||||||||||||||||||||
'Pre Route Call Setup Rules Set ID' pre-route-call-setup-rules-set-id [PreRouteCallSetupRulesSetId] |
Assigns a Call Setup Rule Set ID to the routing rule. The device runs this Call Setup Rules Set if the incoming call matches the characteristics of this routing rule. The device routes the call to the destination according to the routing rule's configured action, only after it has run the Call Setup rules. To configure Call Setup rules, see Configuring Call Setup Rules. Note:
|
|||||||||||||||||||||||||||||||||||||||||||||
'Call Setup Rules Set ID' call-setup-rules-set-id [CallSetupRulesSetId] |
Assigns a Call Setup Rule Set ID to the routing rule. The device runs the Call Setup rules of this Set ID if the incoming call matches the characteristics of this routing rule. The device routes the call to the destination according to the routing rule's configured action, only after it has run the Call Setup rules. To configure Call Setup rules, see Configuring Call Setup Rules. Note:
|
|||||||||||||||||||||||||||||||||||||||||||||
'Group Policy' group-policy [GroupPolicy] |
Defines if the routing rule includes call forking.
Note: Each Forking Group can contain up to 20 members. In other words, up to 20 routing rules can be configured for the same Forking Group. |
|||||||||||||||||||||||||||||||||||||||||||||
'Cost Group' cost-group [CostGroup] |
Assigns a Cost Group to the routing rule for determining the cost of the call. By default, no value is defined. To configure Cost Groups, see Configuring Cost Groups. Note:
|
|||||||||||||||||||||||||||||||||||||||||||||
'Routing Tag Name' routing-tag-name [RoutingTagName] |
Defines the destination tag name, which is used to determine the destination IP Group. The device searches the IP Groups table for an IP Group whose 'Tags' parameter value matches this tag name (and value). The valid value:
The default value is "default", meaning that the device uses the first tag name that is configured without a value. For example, if the Dial Plan rule is configured with tags "Country=England;City=London;Essex", the default tag is "Essex". An example of configuring this parameter when Call Setup Rules (assigned to the 'Pre Route Call Setup Rules Set ID' parameter above) are used to obtain the tag name: If you configure the parameter to "IPGroupName" (i.e., tag name) and the Call Setup Rule's 'Action Subject' parameter is "DstTags.IPGroupName" which results in the value “Teams” (i.e., tag value), the device searches the IP Groups table for a destination IP Group whose 'Tags' parameter is configured to "ipGroupName=Teams". For more information on tag-based routing, see Using Destination Tags for Choosing Routing Destinations. Note:
|
|||||||||||||||||||||||||||||||||||||||||||||
'Internal Action' internal-action [InternalAction] |
Defines a SIP response code (e.g., 200 OK) or a redirection response (with an optional Contact field indicating to where the sender must re-send the message) that the device sends to the sender of the incoming SIP dialog (instead of sending the call to another destination). The parameter is applicable only when the 'Destination Type' parameter in this table is configured to Internal (see above). The valid value syntax (case-insensitive) is:
reply(response='<code>') The following example sends a SIP 200: reply(response='200')
redirect(response='<code>',contact='sip:'+….) redirect(contact='…',response='<code>') redirect(contact='sip:user@host') Examples:
redirect(response=’300’,contact=’sip:102@host’)
redirect(response='302',contact='sip:'+header.to.url.user+'@siprecording.com') You can use the built-in syntax editor to help you configure the field. Click the Editor button located alongside the field to open the Editor, and then simply follow the on-screen instructions. Note:
|
|||||||||||||||||||||||||||||||||||||||||||||
'Modified Destination User Name' modified-dest-user-name [ModifiedDestUserName] |
Defines the user part of the Request-URI in the outgoing SIP dialog message. The valid value is a string of up to 60 characters. By default, no value is defined. Note: The parameter is currently used only when the device communicates with VoiceAI Connect. |